Utilizing Rust Programming Language for EFI-Based Bootloader Design

نویسندگان

  • Tunç Uzlu
  • Ediz Saykol
چکیده

Rust, as being a systems programming language, offers memory safety with zero cost and without any runtime penalty unlike other languages like C, C++ or Cyclone. System programming languages are mainly used for low level tasks such as design of operating system components, web browsers, game engines and time critical missions like signal processing. Main disadvantages of the existing systems languages are being memory unsafe and having low level design. On the other hand, Rust offers high level language semantics, advanced standard library with modern skill set including most of the features and functional elements of widely-used programming languages. Moreover, Rust can be used as a scripting language like Python, and a functional language like Haskell or any other low level procedural language like C or C++, since Rust is both imperative and functional having no garbage collector. These design choices make Rust a suitable match for low level tasks via including high level scalability and maintainability. Meanwhile, EFI (Extensible Firmware Interface) specification is aimed to remove the limitations of legacy hardware. Hence, we present our analysis of utilizing Rust language on EFIbased bootloader design for x86 architecture, to make it useful for both practitioners and technology developers.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

On Control Flow Hijacks of unsafe Rust

Rust is a newly designed systems programming language that aims at safety. However, as a systems language, Rust must be able to manipulate rawmemory and interact with native C codes freely. In this project, we demonstrate how the use of unsafe keyword can potentially undermine the security guarantees of Rust. Specifically, we provideworking demonstrations to show that in some circumstances, vul...

متن کامل

A lightweight bootloader based on MIPS architecture for mobile devices: research and implementation

A bootloader's main function is to initialize the hardware, pass an abstraction of the initialized hardware, a hardware description, to and execute the kernel. While most bootloaders concentrate on ARM or PowerPC architecture, in this paper we propose a lightweight bootloader based on MIPS architecture. The lightweight bootloader is mainly for mobile devices. First, we introduce the architectur...

متن کامل

Reenix: Implementing a Unix-Like Operating System in Rust

This paper describes the experience, problems and successes found in implementing a unix-like operating system kernel in rust. Using the basic design and much of the lowest-level support code from the Weenix operating system written for CS167/9 I was able to create a basic kernel supporting multiple kernel processes scheduled cooperatively, drivers for the basic devices and the beginnings of a ...

متن کامل

Implementation and Exploration of Rust-based Graph Library

Rust is a safe systems programming language. It introduces the concept of ownership, used formemorymanagement to prevent segment fault, resulting from improper memory manipulation. However, this mechanism to guarantee memory safety may bring about obstacles for usage of shared memory resources. Graph is such an example with shared nodes and edges mutually connected to each other. In this report...

متن کامل

DAWPL: A Simple Rust Based DSL For Algorithmic Composition and Music Production

Algorithmic music composition languages provide a particularly interesting challenge for language, abstraction, and system design. The term “music” encompasses a wide variety of things, from the production noise from signal generators, to a notation widely understood by musicians that expresses melody and rhythm. In this project, we investigate DAWPL (Digital Audio Workstation Programming Langu...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016